home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
com
/
computer
/
med_net
/
litt_net.tip
next >
Wrap
Text File
|
1990-04-29
|
6KB
|
121 lines
Hinweise zu Little Net
Little Net arbeitet mit der MIDI-Schnittstelle des ATARI ST. Da es
sich dabei um eine Stromschnittstelle (etwa 5mA) mit galvanischer
Trennung ber Optokoppler handelt, sind auch grere Entfernungen
problemlos zu berwinden. Dreiig bis vierzig Meter sollten kein
Problem sein!
Little Net wird als Laufwerk installiert. Alle Dateizugriffe
erfolgen ber Laufwerk N. Little Net installiert sich daher
zunchst einmal, hnlich wie eine Ramfloppy oder Festplatte, ber
die HDV-Vektoren. In folgende Vektoren klinkt sich Little Net ein:
hdv_bpb: ($472) Vektor zum Holen des Bios-Parameter-Blocks
hdv_rw: ($476) Vektor zum Lesen / Schreiben eines Sektors
hdv_mediach: ($47E) Vektor fr Media Change Routine
Will man nun ber Laufwerk N auf ein Laufwerk des anderen
Rechners zugreifen, so geschieht folgendes. Zuerst wird wahrschein-
lich eine BPB-Anforderung durchgefhrt. Dazu wird das Telegramm 1
abgeschickt und als Antwort auf das Telegramm 2 gewartet. Erhlt
man das Telegramm 7 zurck, so ist etwas falsch gelaufen, und der
BPB wird erneut angefordert. Sektor lesen und schreiben erfolgt
nun analog ber die Telegramme 5 und 6 bzw. 3 und 4. Media Change
geschieht nicht ber einen Telegrammaustausch, sondern wird durch
ffnen der Dialogbox abgehandelt (siehe auch Beschreibung Little
Net).
Wie erfolgt nun das Verschicken der Telegramme im einzelnen?
Ausgangspunkt ist immer eine HDV-Routine. Hier wird das
Anforderungstelegramm in einen Buffer gelegt, und die
Sendeinterrupts freigegeben. Das Senden und Empfangen aller
Telegramme erfolgt voll im Interrupt, damit beide ATARI mglichst
wenig gebremst werden. Der andere ST empfngt nun also das
Telegramm im Interrupt, legt es in einen Buffer und setzt ein
Flag. Eine Telegrammauswertung im Interrupt ist ja leider nicht
mglich, da man hier das Betriebssystem nicht aufrufen darf.
Little Net klinkt sich deshalb in den BIOS-Trap ein und schaut bei
jedem Bios-Aufruf nach, ob ein Telegramm angekommen ist. Wenn ja,
wird das Telegramm beantwortet. Normalerweise macht jedes Programm
einige 100 bis 1000 Bios-Aufrufe pro Sekunde, so da eine prompte
Antwort nicht ausbleibt. Sollte das Little Net aber einmal nicht
funktionieren, so luft wahrscheinlich ein Programm, das vllig am
Betriebssystem vorbei programmiert ist, und keine BIOS-Aufrufe
durchfhrt.
Einen Sonderfall bildet noch das Telegramm 8 (Message senden).
Dieses Telegramm wird direkt aus dem Accessorie heraus abgesendet,
und es erwartet keine Antwort. Das Telegramm wird am anderen ST
auch nicht durch einen Bios-Aufruf ausgewertet, sondern durch
einen Timer-Event. Dies funktioniert natrlich nur in
GEM-Programmen. Die Meldung erscheint also erst auf dem anderen
ST, wenn dort eine GEM-Applikation luft.
Noch etwas zum allgemeinen Telegrammaufbau. Vor jedem Telegramm
werden 2 Sync-, nach jedem Telegramm werden 3 Sync-Bytes 0
geschickt. Dadurch ist gewhrleistet, da der andere ST sich auf
die Kennung synchronisiert. Nun wird dreimal das Kennbyte des
Telegramms verschickt. Dies geschieht dreimal um auch bei einem
evt. bertragungsfehler eindeutig den Telegrammtyp bestimmen zu
knnen. Aus dem Telegrammtyp bestimmt die Empfangsroutine nmlich
die Zahl der Zeichen die noch folgen. Am Ende eines jeden
Telegramms steht noch eine 16 Bit Checksumme. Sollte diese nicht
stimmen, so wird mit Telegramm 7 negativ geantwortet.
Aufbau der Telegramme
=====================
1.) BPB anfordern: 3 Byte Kennung (F0) -> Lnge 3
1 Byte Laufwerk (0...)
2 Byte Checksumme
2.) BPB senden: 3 Byte Kennung (D2) -> Lnge 25
1 Byte Laufwerk (0...)
1 Byte Status (0 = OK / FF = Fehler)
20 Byte BPB
1 Byte Dummy
2 Byte Checksumme
3.) Sektor schreiben: 3 Byte Kennung (B4) -> Lnge 517
1 Byte Laufwerk (0...)
2 Byte Sektornummer (0...)
512 Byte Sektor
2 Byte Checksumme
4.) Schreibbestt.: 3 Byte Kennung (96) -> Lnge 7
1 Byte Laufwerk (0...)
2 Byte Sektornummer (0...)
1 Byte Status (0=OK / neg.=Fehler)
1 Byte Dummy
2 Byte Checksumme
5.) Sektor anfordern: 3 Byte Kennung (78) -> Lnge 5
1 Byte Laufwerk (0...)
2 Byte Sektornummer (0...)
2 Byte Checksumme
6.) Sektor lesen: 3 Byte Kennung (5A) -> Lnge 519
1 Byte Laufwerk (0...)
2 Byte Sektornummer (0...)
1 Byte Status (0=OK / neg.=Fehler)
512 Byte Sektor
1 Byte Dummy
2 Byte Checksumme
7.) negative Bestt.: 3 Byte Kennung (1E) -> Lnge 3
1 Byte Dummy
2 Byte Checksumme
8.) Message senden: 3 Byte Kennung (3c) -> Lnge 63
30 Byte Zeile 1
30 Byte Zeile 2
1 Byte Dummy
2 Byte Checksumme